Wireless communication handsets are typically manufactured to be capable of operating on a variety of service provider networks. To personalize a handset to a specific network provider and customer, a device called a subscriber identity module, or SIM, card is inserted into the handset. SIM cards hold data parameters, such as home public land mobile network (HPLMN) information, international mobile subscriber identifier (IMSI), and group identifiers (GID1/GID2), that are coded with values that bind the handset to the issuing service provider and the customer. When a service provider sells a service agreement, the purchasing customer is typically provided a handset with a pre-installed, personalized SIM card.
Wireless communication network service providers frequently provide these handsets, such as cellular telephones, to new customers at deep discounts as an enticement to sign long term service agreements. In this case, the service provider essentially sells the handset to the new customer at a loss, called a subsidy. This subsidy represents a substantial investment that the service provider hopes to recover from the customer in the form of user fees to be collected over the life of the service agreement.
The subsidy is a marketing investment that the service provider seeks to protect via a subsidy lock mechanism in the handset. A subsidy lock is used to insure that a subsidized handset can only be used with SIM cards issued by the subsidizing operator such that this handset will generate billable airtime for that operator. Various hardware or software techniques are used to insure that the handset can only accept SIM cards issued by the subsidizing operator. The subsidy locking mechanisms must be very robust to prevent sophisticated hackers from circumventing the subsidy lock, replacing the SIM card, and then reselling a subsidized handset to a user of another network. At the same time, the subsidy locking mechanisms must be configured to easily allow a customer to unlock the phone via a password at the end of the service agreement should the customer choose to switch to a different service provider.
Subsidy locking implementations may use hardware designs supporting “secure boot” functionality and “secret key” hardware encryption. A “secure boot” capability utilizes asymmetric digital signatures, whereby the root of trust is embedded in the hardware to validate that the device software is authentic before executing it. This validation insures that the software has not been modified by hackers to bypass the security checks of the SIM-lock implementation. If the software is, indeed, modified, then it must be re-signed in order to pass the secure boot process. The digital signing process requires a private encryption key which is kept on a secure signing server at the manufacturer, not within the handset. Thus, unauthorized persons do not have knowledge of this key and hence cannot generate a new signature on code that they may have modified. A limitation of asymmetric signing techniques is that signed data is fixed and cannot be altered after leaving the manufacturing environment because of lack of knowledge of the private signing key.
“Secret key” hardware encryption involves a symmetric encryption algorithm, such as 3DES, implemented in hardware utilizing a key variable contained in that hardware. This key variable is randomly assigned to each device, such that it is different between each device. No records are kept to track which key value was assigned to each part. Furthermore, there are no hardware or software interfaces that can read the value of this key. Thus, the key is a secret hidden in the hardware. Hardware encryption using this key is useful for encrypting data for the purpose of integrity protection and for secrecy of that data for storage in an external memory, such as a flash memory IC. Because the encryption key is random, data cannot be copied into another device—it will only decrypt successfully on the original device. In addition, protected data cannot be altered since it would require re-encrypting using the secret key.
The subsidy locking, or SIM-lock, feature involves several data parameters that must be protected from tampering (i.e. from unauthorized modification) including a lock state that indicates if the handset is locked or unlocked. In addition, if the handset is locked, there are parameters (such as a PLMN list, IMSI digits, GID1 and GID2 values, etc.,) that indicate which SIM cards are allowed. The handset user must be able to unlock the subsidy lock by entering a password at the completion of the contract term. Such passwords preferably are randomly assigned to each handset and tracked in a secure database. Because the lock state parameter must change during this unlocking process, these parameters may be protected via symmetric encryption utilizing a secret hardware encryption key as described above.
Symmetric encryption can be very effective in preventing unauthorized unlocking provided that there are not any security vulnerabilities in the handset software that have the privilege to use the hardware encryption engine. However, it is very difficult, if not impossible, to eliminate all vulnerabilities. Most importantly, all of the information, such as the secret hardware encryption key, necessary to compute the values that represent the unlocked state is hidden in the product. Therefore, a hacker may be able to find a security vulnerability that tricks the handset into computing the proper encrypted value representing the unlocked state. For example, it may possible to execute software code that processes a correct password entry by convincing the handset software that a user has already entered a correct password. Other potential security vulnerabilities, such as buffer overflows, or signed-integer math overflows/underflows, may be exploited to allow the execution of software that was not validated by the secure boot checking. Non-validated software could then make use of the hardware encryption capability on the handset to encrypt and store a value representing the unlocked state. It is therefore very useful to provide a more secure method for protecting subsidy locking parameters in handset devices.